Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Advective-then-Flux form for Runge-Kutta schemes #553

Merged
merged 7 commits into from
Oct 28, 2024

Conversation

tommbendall
Copy link
Contributor

This PR implements an "advective-then-flux" form for RK schemes with the conservative transport equation.

This involves:

  • adding an enumerator for the formulation of the RK scheme -- we now have linear, predictor and increment forms, which follow the attached document
  • I have implemented the linear form, which allows the final RK stage of the final subcycle to use a different operator
  • there is a new all_but_last label, which indicates the form to use for all but the very final RK stage
  • there is an advective_then_flux boolean argument to the DGUpwind operator, which signifies to use the advective form of the transport equation for all-but-the-last RK stage
  • there is of course a unit-test which demonstrates that this formulation has the correct properties

This seems to have a similarly positive impact to the density/depth predictor for transport with large Courant numbers.

@tommbendall tommbendall added enhancement Pull requests or issues relating to adding a new capability research problem Pull requests or issues involving new science, with possibly unknown outcome labels Sep 23, 2024
@tommbendall tommbendall marked this pull request as ready for review October 26, 2024 12:15
Copy link
Collaborator

@atb1995 atb1995 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These changes largely look good to me, the use of the enumerated type is sensible and the changes successfully implement an advective-then-flux version of conservative transport. I'm happy that the change has sufficient testing, I only have a few minor comments/requests.

gusto/spatial_methods/transport_methods.py Outdated Show resolved Hide resolved
gusto/time_discretisation/explicit_runge_kutta.py Outdated Show resolved Hide resolved
gusto/time_discretisation/explicit_runge_kutta.py Outdated Show resolved Hide resolved
Co-authored-by: Alex Brown <[email protected]>
@tommbendall tommbendall merged commit b30a5a8 into main Oct 28, 2024
4 checks passed
@tommbendall tommbendall deleted the TBendall/AdvectiveThenFlux branch October 28, 2024 11:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Pull requests or issues relating to adding a new capability research problem Pull requests or issues involving new science, with possibly unknown outcome
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants